package Model;

import java.io.Serializable;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * Esta classe implementa um POJO que representa um
 * Departamento assim como uma entidade de um banco 
 * de dados.  
 * @author Arnaldo
 * @author Pablo Diego
 * @author Yuri Cariry 
 *
 */
@Entity 
@Table(name="DEPARTAMENTO")
public class Departamento implements Serializable {

	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 1L;

	
	/**
	 * Codigo identificador do Departamento
	 */
	@Id @GeneratedValue	
	@Column(name="codigoDepartamento", nullable=false)
	private int codigoDepartamento;

	
	/**
	 * nome Departamento
	 */
	@Column(name="nomeDepartamento", nullable=false, length = 50)
	private String nomeDepartamento;

	/**
	 * nome Chefe
	 */
	@Column(name="nomeChefe", nullable=false, length = 50)
	private String nomeChefe;

	/**
	 * sigla Departamento
	 */
	@Column(name="siglaDepartamento", nullable=false, length = 10)
	private String siglaDepartamento;

	/**
	 * sigla Departamento
	 */
	@Column(name="nomeSubChefe", nullable=false, length = 10)
	private String nomeSubChefe;

	/**
	 * siglaDepartamento
	 */
	@Column(name="emailChefe", nullable=false, length = 40)
	private String emailChefe;

	/**
	 * emailSubChefe
	 */
	@Column(name="emailSubChefe", nullable=false, length = 40)
	private String emailSubChefe;

	/**
	 * senhaUsuario
	 */
	@Column(name="senhaUsuario", nullable=false, length = 10)
	private String senhaUsuario;

	/**
	 * telefoneChefe
	 */
	@Column(name="telefoneChefe", nullable=false, length = 14)
	private String telefoneChefe;

	/**
	 * telefoneSubchefe
	 */
	@Column(name="telefoneSubchefe", nullable=false, length = 14)
	private String telefoneSubchefe;

	/**
	 * faxChefe
	 */
	@Column(name="faxChefe", nullable=false, length = 14)
	private String faxChefe;

	/**
	 * faxSubChefe
	 */
	@Column(name="faxSubChefe", nullable=false, length = 14)
	private String faxSubChefe;

	/**
	 * celularChefe
	 */
	@Column(name="celularChefe", nullable=false, length = 14)
	private String celularChefe;

	/**
	 * celularSubChefe
	 */
	@Column(name="celularSubChefe", nullable=false, length = 14)
	private String celularSubChefe;
	//PRIMARY KEY{CODIGO_DEPARTAMENTO}


	

	/**
	 * Construtor sem argumentos 
	 */
	public Departamento(){}


	
	/**
	 * Metodo que retorna o codigoDepartamento
	 * @return codigoDepartamento o codigoDepartamento
	 */
	public int getCodigoDepartamento() {
		return codigoDepartamento;
	}

	/** 	
	 * Metodo que altera o codigoDepartamento
	 * @param codigoDepartamento o codigoDepartamento
	 */
	public void setCodigoDepartamento(int codigoDepartamento) {
		this.codigoDepartamento = codigoDepartamento;
	}


	/**
	 * Metodo que retorna o nomeDepartamento
	 * @return nomeDepartamento o nomeDepartamento
	 */
	public String getNomeDepartamento() {
		return nomeDepartamento;
	}

	/** 	
	 * Metodo que altera o nomeDepartamento
	 * @param nomeDepartamento o nomeDepartamento
	 */
	public void setNomeDepartamento(String nomeDepartamento) {
		this.nomeDepartamento = nomeDepartamento;
	}


	/**
	 * Metodo que retorna o nomeChefe
	 * @return nomeChefe o nomeChefe
	 */
	public String getNomeChefe() {
		return nomeChefe;
	}

	/** 	
	 * Metodo que altera o nomeChefe
	 * @param nomeChefe o nomeChefe
	 */
	public void setNomeChefe(String nomeChefe) {
		this.nomeChefe = nomeChefe;
	}


	/**
	 * Metodo que retorna o siglaDepartamento
	 * @return siglaDepartamento o siglaDepartamento
	 */
	public String getSiglaDepartamento() {
		return siglaDepartamento;
	}

	/** 	
	 * Metodo que altera o siglaDepartamento
	 * @param siglaDepartamento o siglaDepartamento
	 */
	public void setSiglaDepartamento(String siglaDepartamento) {
		this.siglaDepartamento = siglaDepartamento;
	}


	/**
	 * Metodo que retorna o nomeSubChefe
	 * @return nomeSubChefe o nomeSubChefe
	 */
	public String getNomeSubChefe() {
		return nomeSubChefe;
	}

	/** 	
	 * Metodo que altera o nomeSubChefe
	 * @param nomeSubChefe o nomeSubChefe
	 */
	public void setNomeSubChefe(String nomeSubChefe) {
		this.nomeSubChefe = nomeSubChefe;
	}

	/**
	 * Metodo que retorna o emailChefe
	 * @return emailChefe o emailChefe
	 */
	public String getEmailChefe() {
		return emailChefe;
	}

	/** 	
	 * Metodo que altera o emailChefe
	 * @param emailChefe o emailChefe
	 */
	public void setEmailChefe(String emailChefe) {
		this.emailChefe = emailChefe;
	}

	/**
	 * Metodo que retorna o emailSubChefe
	 * @return emailSubChefe o emailSubChefe
	 */
	public String getEmailSubChefe() {
		return emailSubChefe;
	}

	/** 	
	 * Metodo que altera o emailSubChefe
	 * @param emailSubChefe o emailSubChefe
	 */
	public void setEmailSubChefe(String emailSubChefe) {
		this.emailSubChefe = emailSubChefe;
	}

	
	/**
	 * Metodo que retorna o senhaUsuario
	 * @return senhaUsuario o senhaUsuario
	 */
	public String getSenhaUsuario() {
		return senhaUsuario;
	}

	/** 	
	 * Metodo que altera o senhaUsuario
	 * @param senhaUsuario o senhaUsuario
	 */
	public void setSenhaUsuario(String senhaUsuario) {
		this.senhaUsuario = senhaUsuario;
	}

	/**
	 * Metodo que retorna o codigoDepartamento
	 * @return codigoDepartamento o codigoDepartamento
	 */
	public String getTelefoneChefe() {
		return telefoneChefe;
	}

	/** 	
	 * Metodo que altera o telefoneChefe
	 * @param telefoneChefe o telefoneChefe
	 */
	public void setTelefoneChefe(String telefoneChefe) {
		this.telefoneChefe = telefoneChefe;
	}

	/**
	 * Metodo que retorna o telefoneSubchefe
	 * @return telefoneSubchefe o telefoneSubchefe
	 */
	public String getTelefoneSubchefe() {
		return telefoneSubchefe;
	}

	/** 	
	 * Metodo que altera o telefoneSubchefe
	 * @param telefoneSubchefe o telefoneSubchefe
	 */
	public void setTelefoneSubchefe(String telefoneSubchefe) {
		this.telefoneSubchefe = telefoneSubchefe;
	}

	/**
	 * Metodo que retorna o faxChefe
	 * @return faxChefe o faxChefe
	 */
	public String getFaxChefe() {
		return faxChefe;
	}

	/** 	
	 * Metodo que altera o faxChefe
	 * @param faxChefe o faxChefe
	 */
	public void setFaxChefe(String faxChefe) {
		this.faxChefe = faxChefe;
	}

	/**
	 * Metodo que retorna o faxSubChefe
	 * @return faxSubChefe o faxSubChefe
	 */
	public String getFaxSubChefe() {
		return faxSubChefe;
	}

	/** 	
	 * Metodo que altera o faxSubChefe
	 * @param faxSubChefe o faxSubChefe
	 */
	public void setFaxSubChefe(String faxSubChefe) {
		this.faxSubChefe = faxSubChefe;
	}

	/**
	 * Metodo que retorna o celularChefe
	 * @return celularChefe o celularChefe
	 */
	public String getCelularChefe() {
		return celularChefe;
	}

	/** 	
	 * Metodo que altera o celularChefe
	 * @param celularChefe o celularChefe
	 */
	public void setCelularChefe(String celularChefe) {
		this.celularChefe = celularChefe;
	}

	/**
	 * Metodo que retorna o celularSubChefe
	 * @return celularSubChefe o celularSubChefe
	 */
	public String getCelularSubChefe() {
		return celularSubChefe;
	}

	/** 	
	 * Metodo que altera o celularSubChefe
	 * @param celularSubChefe o celularSubChefe
	 */
	public void setCelularSubChefe(String celularSubChefe) {
		this.celularSubChefe = celularSubChefe;
	}


} // fim da classe
